# -*- coding: utf-8 -*-

# @author Anderson R. Livramento
# Copyright (C) 2008 Anderson Rodrigues Livramento <anderdevel@users.sourceforge.net>
#
# O conteúdo deste arquivo está disponível dentro dos termos 
# da Licença Pública Geral GNU como publicada pela 
# Fundação do Software Livre (FSF); na versão 2 da Licença, ou
# (na sua opnião) qualquer versão mais recente.
#
# Este programa é distribuído na esperança que possa ser útil,
# mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a
# qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
# Licença Pública Geral GNU para maiores detalhes.
#
# Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob
# o título "LICENCA.txt", junto com este programa; se não, escreva para
# a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301  US
#
import logging
import types
import simplejson

import votafam.model.votafammodel as dao
import votafam.lib.objectutils as objectutils

from votafam.lib.base import *

from sqlalchemy.sql import func

log = logging.getLogger(__name__)

class AjaxController(BaseController):

    def index(self):
        return 'WRONG USE!!!!'

    def _json_query_response(self,query_object,query_hook=None):
        ajax_results = []
        if query_object:
            for query_row in query_object:
                if query_hook and type(query_hook) == types.FunctionType:
                    query_hook(query_row)
                dict_item = objectutils.object_to_dict(query_row)
                ajax_results.append(dict_item)
        return simplejson.dumps(ajax_results)
    
    def mostras(self):
        q = request.params.get('q',None)
        mostras = None
        if q is not None:
            mostras = dao.Mostra.query.filter(func.upper(dao.Mostra.nmmostra).like(''.join(['%',q.upper(),'%'])))
        return self._json_query_response(mostras)
        
    
    def candidatos(self):
        q = request.params.get('q',None)
        candidatos = None
        if q is not None:
            candidatos = dao.Candidato.query.filter(func.upper(dao.Candidato.nmcandidato).like(''.join(['%',q.upper(),'%'])))
        return self._json_query_response(candidatos)
